go_bunzee

새끈한 챗봇 만들기, RAG 활용하면 쉽게 할 수 있다 | 매거진에 참여하세요

questTypeString.01quest1SubTypeString.04
publish_date : 25.05.27

새끈한 챗봇 만들기, RAG 활용하면 쉽게 할 수 있다

#RAG #AI #gpt #챗봇 #만들기 #벡터 #질문 #문서업데이트

content_guide

이제 챗봇은 똑똑해야 한다

요즘 챗봇, 정말 놀랍지 않나요? 단순히 날씨나 일정만 알려주는 시대는 지났습니다.

이제는 코드를 짜주고, 분석 보고서를 작성하며, 때로는 사람보다 더 빠르게 요점을 정리해주기도 합니다.

특히 GPT 같은 초거대 언어 모델의 등장 이후, 우리는 AI 챗봇이 거의 모든 분야에서 비서를 넘어 전문가의 역할까지 수행하는 모습을 보고 있습니다.

하지만 한편으로 이런 의문이 생깁니다. "이렇게 똑똑한 AI는 어떻게 만들어지는 걸까?"

GPT-4처럼 대규모 언어모델이 대단한 것은 맞지만, 현실 세계의 문제를 다루기 위해선 단지 모델만으로는 부족합니다.

실시간 정보에 접근하거나, 특정 도메인의 자료를 반영하고, 사용자 맞춤 대화를 이어가기 위해선 더 정교한 기술이 필요합니다.

이때 필요한 것이 바로, 언어모델의 한계를 보완하는 보조 구조입니다.

그 핵심 기술이 바로 RAG, 즉 Retrieval-Augmented Generation입니다.

이 기술은 단순한 챗봇이 아닌, 기업 지식에 특화된 스마트 어시스턴트부터, 사용자의 개인 데이터를 활용하는 맞춤형 조언자까지, 다양한 가능성을 열어줍니다.

GPT에 새로운 뇌와 기억력을 붙여주는 RAG, 함께 알아볼까요?

왜 RAG 챗봇인가?

GPT-4 같은 모델은 아무리 강력해도 다음 두 가지 한계에 부딪힙니다:

  • - 기억력 부족: 긴 대화나 여러 번의 질문 후에는 맥락을 잊어버립니다.

  • 이로 인해 복잡한 컨설팅이나 지속적 대화가 필요한 시나리오에서는 한계가 뚜렷해집니다.

  • - 정보 최신성 부족: 모델이 훈련된 이후의 정보는 반영할 수 없습니다.

  • 예를 들어, 2024년 주식 시장 동향이나 최신 사내 규정 같은 정보는 모릅니다. 사용자 요구에 즉시 반응하는 데는 한계가 생깁니다.

바로 이 두 가지 문제를 해결하는 것이 RAG입니다. RAG는 단순한 언어 모델이 아니라,

외부 지식을 검색해 활용하는 능력을 갖춘 혼합형 AI 시스템입니다. 다시 말해, GPT에 도서관과 검색 엔진을 붙여주는 역할을 합니다.

이 방식은 단순한 지식 응답을 넘어, 사용자가 가진 질문에 대해 근거 있는 답을 생성하고, 그 근거를 함께 제시함으로써 신뢰성과 투명성을 크게 높일 수 있습니다.

챗봇이 단순한 답변 도구가 아니라 '설득력 있는 상담사'가 될 수 있다는 뜻입니다.

RAG란?

RAG는 Retrieval-Augmented Generation의 약자로, 다음과 같은 세 단계 구조를 가집니다:

  1. - 질문 입력:

  2. 사용자가 텍스트로 질문을 입력합니다. 자연어 기반 질문이기 때문에 누구나 사용하기 쉽습니다.

  3. - 벡터 검색 (Retrieval):

  4. 질문을 벡터화하여 벡터 데이터베이스에서 관련 문서를 찾아옵니다. 이 검색은 정확한 키워드가 없어도 의미 기반으로 유사한 정보를 찾아주는 것이 핵심입니다.

  5. - 생성 (Generation):

  6. 검색된 문서들과 함께 질문을 LLM에 넣고 최종 답변을 생성합니다. 이 단계에서는 사용자의 질문에 대한 정답뿐 아니라, 그 문맥을 반영한 자연스러운 설명이 이루어집니다.

이 구조 덕분에 RAG 챗봇은 다음과 같은 일을 해낼 수 있습니다:

  • - 회사의 정책이나 매뉴얼에 기반한 정확한 답변 제공

  • - 나만의 Notion, Wiki, PDF 기반의 맞춤 대화 가능

  • - 사용자 맞춤 시나리오 설정 및 반응

  • - 비정형 데이터에서 의미 있는 정보 추출 후 대화

특히 RAG는 정보 출처가 명확하기 때문에, 법률, 의료, 회계 등 높은 신뢰도가 요구되는 분야에서 각광받고 있습니다.

단순히 "GPT가 말했다"가 아닌, "이 문서에 따르면 이런 내용이 있습니다"라고 답변하는 방식이 사용자에게 훨씬 신뢰를 줍니다.

챗봇 아키텍처 구성도

  1. 1. 핵심 구성요소

사용자 질문 → [임베딩 처리] ↓ [벡터 DB 검색] ← 문서 미리 임베딩 ↓ [LLM 응답 생성] ↓ 사용자에게 응답

2. 사용 기술 스택 예시

기능

도구

임베딩 생성

OpenAI Embedding, HuggingFace

벡터 DB

Chroma, Pinecone, Weaviate

언어 모델

GPT-4, Claude, Mistral

프레임워크

LangChain, LlamaIndex

프론트엔드

React, Next.js, chatbot-ui 등

서버

Node.js, Python (FastAPI), Express 등

이 외에도 RAG 구성에선 캐시, 큐, 로그 저장소, 사용자 인증 시스템 등 다양한 백엔드 컴포넌트를 추가해 운영 효율을 극대화할 수 있습니다.

또한 프론트엔드는 단순한 채팅 UI에서 멈추지 않고, 검색 결과 미리보기, 출처 링크, 요약 보기 등 다양한 UX 요소를 붙일 수 있습니다.

문서 수집 및 전처리

RAG 챗봇의 핵심은 ‘무엇을 기반으로 답변하느냐’입니다.

예를 들어 사내 정책에 답변하는 챗봇이라면 다음 데이터를 넣어야겠죠:

  • - 정책 매뉴얼 PDF

  • - 사내 Notion 문서

  • - 회의록

  • - 엑셀/CSV

* 전처리 팁

  1. - 문서 분할 (chunking):
    GPT는 긴 텍스트를 한 번에 못 읽습니다. 500~1000자씩 나누고, 겹치는 부분을 둬야 문맥이 유지됩니다.

  2. - 임베딩 생성:
    각 청크를 벡터(숫자 배열)로 바꿉니다. (예: 1536차원 임베딩)

  3. - 벡터 DB 저장:
    이 임베딩을 저장해두고, 나중에 유사한 질문이 오면 빠르게 검색합니다.

질문 처리 로직

사용자 질문을 이해하고, 관련 문서를 검색하고, 정확하고 자연스러운 응답을 생성하는 일련의 흐름은 다음과 같습니다:

  1. - 질문 임베딩 생성: 사용자의 질문을 벡터로 변환

  2. - Top-K 유사 문서 검색: 가장 유사한 K개의 문서를 벡터 DB에서 가져옴

  3. - 프롬프트 구성: 문서와 질문을 묶어 LLM에 전달할 프롬프트 작성

  4. - 언어모델 응답 생성: GPT-4 등으로부터 응답 생성 및 출력

이 흐름은 고도화할수록 더욱 강력해지며, 사용자의 히스토리나 역할 기반 프롬프트도 추가 가능해져 더욱 자연스럽고 유용한 대화를 구성할 수 있습니다.

1. 사용자 질문 → 임베딩

사용자의 질문도 벡터로 바꿉니다.

const embedding = await openai.createEmbedding({ input: "사내 휴가 정책 알려줘", model: "text-embedding-ada-002" });

2. 유사 문서 검색 (Top-K)

벡터 DB에서 가장 비슷한 문서 K개를 가져옵니다. (예: 3~5개)

const results = vectorDB.similaritySearch(embedding, { k: 3 });

3. 생성 모델 호출

문서와 함께 GPT-4에게 넘깁니다.

const prompt =  다음 정보를 참고해서 사용자 질문에 답해주세요. 정보: ${results.join("\n")} 질문: ${userQuestion} ; 
const response = await openai.createChatCompletion({ model: "gpt-4", messages: [{ role: "user", content: prompt }] });

실제 챗봇 예시

예제: 사내 문서 기반 HR 챗봇

사용자: "출산 휴가 몇 주 가능한가요?"
챗봇:

"회사의 출산 휴가 정책에 따르면 출산일 전후 총 90일(약 12주)까지 사용할 수 있습니다. 단, 쌍둥이의 경우 120일까지 가능합니다."

→ 실제 문서를 기반으로 하기 때문에 신뢰도와 정확도가 매우 높습니다.

챗봇 개선과 확장 방향

  1. 1. 유용한 추가 기능

  • - 대화 기록 저장: 유저별 문맥 유지

  • - 지속 학습: 자주 묻는 질문은 답변 템플릿 생성

  • - 도메인별 모드 분리: "개발 질문 모드", "HR 질문 모드"

2. 고급 활용

  • - 멀티모달 RAG: 텍스트 + 이미지 (예: 이미지 설명 포함된 매뉴얼)

  • - PDF+DB 연동 챗봇: PDF 내용 + ERP/CRM API 데이터까지 결합

마치며: GPT를 넘어서는 진짜 AI 챗봇 만들기

RAG는 단순히 언어모델에 정보를 붙이는 구조를 넘어, 챗봇의 수준을 한 단계 끌어올리는 열쇠입니다.

기존 GPT 기반 챗봇이 가진 한계를 극복하고, 각 조직과 사용자의 특성에 맞는 맞춤형 대화를 가능하게 해줍니다.

지금은 단순한 기술 구현을 넘어, 조직의 지식을 어떻게 전달할 것인지, 사용자의 경험을 어떻게 설계할 것인지에 대한 질문이 필요한 시기입니다.

RAG는 기술이자 전략입니다. 여러분만의 RAG 챗봇을 지금 시작해보세요.

이 기술은 단순한 도구가 아니라, 새로운 업무 파트너가 되어줄 것입니다.